The Session Initiation Protocol (SIP) is used to establish, manage, and terminate computer-network based communications. Such communications, including IP telephony, presence, and instant messaging, may be provided in one or more SIP application sessions. A SIP application server includes one or more SIP containers that invoke and terminate SIP application sessions, and manage messages and responses that are sent and received in the context of SIP application sessions. Each participant in a SIP application session is represented by a separate SIP session. Thus, for example, a SIP application session representing a computer network-based conference call having multiple participants would have multiple SIP sessions associated with it, where a separate SIP session is associated with each participant in the conference call.
Once a SIP container has created a SIP session for a participant in a SIP application session, the SIP container and the participant conduct their SIP session communications as part of a SIP dialog. Normally, mid-dialog SIP messages sent by the participant are routed only to the SIP container that is managing the SIP session, as the SIP container and any application instances that are associated with the related SIP application session maintain state information in connection with the SIP session. In some systems such state information is continuously replicated to a backup site that enables management of a SIP session to be taken over mid-dialog by a SIP container that did not create the SIP session. However, such mechanisms are often costly or otherwise impractical due to performance constraints.